package com.moss.common.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.moss.common.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

@Data
public class SysUserEntity extends BaseEntity{

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 表主键
     */
    private String userId;

    /**
     * 真实名
     */
    @NotNull(message = "用户昵称不能为空")
    private String realName;

    /**
     * 联系方式
     */
    @NotNull(message = "手机号不能为空")
    private String phone;

    /**
     * 头像地址
     */
    private String avatar;

    /**
     * 用户名
     */
    @NotNull(message = "账号不能为空")
    private String username;

    /**
     * 密码
     */
    @NotNull(message = "密码不能为空")
    private String password;

    /**
     * md5盐值
     */
    @JsonIgnore
    private String md5Salt;

    /**
     * 用户性别 men男，women女
     */
    @NotNull(message = "性别不能为空")
    private String sex;

    /** 用户归属监管*/
    @NotNull(message = "所属监管不能为空")
    private Long orgId;

    /** 用户归属监管*/
    private String orgName;

    /**
     * 停用状态，1正常，0停用
     */
    @NotNull(message = "用户状态不能为空")
    private Integer status;

    /** 角色对象 */
    private List<SysRoleEntity> roles;

    private Long[] roleIds;

    public static boolean isAdmin(String userId) {
        return StringUtils.isNotEmpty(userId) && "admin".equals(userId);
    }
}
